Tasks make calls to actions that perform specific and discreet activities to implement business logic. They take input arguments and return output variables. The inputs and outputs for the task are visible in the Edit task dialog under the Incoming and Outgoing tabs (see figure below). In the event an error occurs, the task may return an error variable, which is visible under the Error tab.
Figure: Edit task dialog
Types of Tasks
Tasks are color-coded by type as illustrated in the figure below.
- Blue boxes are manual tasks.
- Green boxes are automatic tasks.
- Pink boxes are start/end terminators.
- Purple shapes are operation tasks.
Figure: Sample Automation
Variable Types
There are three variable types (static, job, and task) that can be used in a Reference task on the Automation Builder canvas.
Note: Additional information on some of the common terms that are used to describe workflows and tasks is presented in the Automation Builder Overview guide.
Static variables are hard-coded and maintain the same value between function calls. They cannot be modified or changed programmatically in the lifecycle of an automation run. A static variable remains in memory while the automation is running. They are often used to maintain settings whose values should not change once a workflow (automation) has started.
Task variables are values provided as a result of executing another task earlier in the workflow of an automation. Essentially, they provide reference information for another task. This means you are choosing some previously executed task, taking its output, and using that as the selected task’s input.
Job variables allow you to use changeable values in the configuration and execution of a job. You create a variable, give it a name and a value. You can then insert the variable (by referencing its name) in various places in a workflow. When IAP runs a job, it replaces the reference variable with the job variable's value. Job variables are useful in two ways. First, they allow you to pass values as inputs to a workflow each time you execute it. Secondly, anywhere in the workflow, a task can set/update the value of a job variable. As a best practice, use task variables instead of job variables whenever possible, but if task variables will not work, then use job variables.
Copy a Task Within an Automation
To copy a task within an automation:
- Select the task to be copied. The labels should become bold.
- Click the Copy task button in the upper right corner of the Automation Builder canvas.
- A copy of the selected task will appear on the canvas.
Edit a Task
To edit a task:
Double-click the task to open the Edit task dialog.
Automatic Task Properties
Manual Task Properties
Task properties may include:
Summary: Enter a brief task summary in the optional Summary field. This text displays on the task block. Tasks reference other tasks by their summary.
Description: Enter a description in the optional Description field.
Groups (for manual tasks only): Restrict who is authorized to work the task by assigning one or more groups.
- Type "Operations" in the Groups field. Matching group names will appear in a list after you begin typing.
- Click the correct group name to add that group to the task's groups. The group will not be added unless it is selected from the list. Add as many groups as desired.
Actor (for automatic tasks only): Execute automatic tasks by the system or a user by setting the Actor field.
- Itential (Pronghorn): The system executes the automatic task.
- job: Execute the automatic task as the user that started the job.
- Any previous manual task: Execute the automatic task as the user that worked a previous manual task.
Incoming parameters: (See figure above.)
Variable: The argument name; mandatory parameters are marked with an asterisk.
Type: Data type (boolean, string, number, array, object).
Reference Task: Defines the data source. Options include the following:
- job: A global variable. Job variables are set at the time a job is started or when a task's outgoing data is copied to a job variable. Job variables are visible to all tasks defined in the automation. Job variables are mutable. Some job variables are always present; others are defined by the collection of input job variables between all tasks in the automation.
- static: A constant; a value defined within the task properties.
- any prior task: Present in the current automation (listed by name in the dropdown).
Reference Variables (See table below.)
Reference Task Reference Variable job Defaults to same name as the task's parameter. Dropdown shows all job variables, including input arguments for every task whose reference task is the job. To set a custom job variable name, click EDIT and type the new name in Reference variable field. Job Variable names must adhere to the IAP Naming Conventions. static Static value entered in Reference variable field. a prior task Name of an output variable or error from selected prior task.
Note: Avoid changing to another task's input variable, which could create variable type mismatch and other errors.
Outgoing parameters: (See figure above.)
- Variable: The task's return variable; the variable which is made available to any subsequent task in the workflow. Outgoing variables are immutable.
- Job Variables: To promote the task's return variable to a job variable, check the Job Variable box. This copies the outgoing variable's value to a job variable. Job variables are similar to global variables in that they are available to every task in the job.
- Job Variable Names: Defaults to the same name as the task's return variable. To set a custom name for the return variable, type the new name in the Job Variable Names field. Job Variable names must adhere to the IAP Naming Conventions.
Error parameters: (See figure above.)
- Variable: The task's error variable, which is returned in the event of an error.
- Job Variables: To promote the task's error variable to a job variable, check the Job Variable box. This copies the error value to a job variable. Job variables are similar to global variables in that they are available to every task in the job.
- Job Variable Names: To set a custom name for the error variable, type the new name in the Job Variable Names field. Job Variable names must adhere to the IAP Naming Conventions.
Click SAVE or UPDATE in the title bar to save changes.
Resize Task Boxes
For better visibility, the task boxes and their labels can be enlarged or reduced.
To increase or decrease the size of the task boxes:
- Click the Zoom In or Zoom Out tasks button
in the upper right corner of the Automation Builder canvas.
- Click SAVE or UPDATE in the title bar to save the resized task boxes.
Schedule a Task
You can restrict when an automated task will run by specifying a schedule. This is also defined as setting the run window for a task. Setting a 'run window' means the task will not run (once it is time to run) if the current time falls outside the 'run window.'
To schedule a task:
In an open automation, double-click an automated task to open the Edit task dialog.
Click the Run Window slider to set Scheduled to true.
Select the EDIT button to open a tab with the run window information.
Select Static from the new dropdown list to statically define the task's run window.
Select the days on which the task should run. The selected buttons will turn from white to blue.
Enter the Start Time and End Time in 24 HR format (HHMM) relative to the server's configured timezone.
Select Variable from the new dropdown list to pass the schedule at run time through a variable and configure the properties.
Reference task: Defines the data source. Options include:
- job
- static
- any prior task in the current automation (listed by name in the dropdown)
Reference variable:
job variable name
a static value
an earlier task's outgoing variable name or error
JSON Schema for schedule value
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "window": { "type": "object", "properties": { "sun": { "$id": "/properties/window/properties/sun", "type": "object", "description": "Schedule details for day of the week Sunday.", "properties": { "enable": { "type": "boolean", "description": "Will task run this day of the week?", "default": false, "examples": [ false ] }, "time": { "type": "object", "description": "When can task run this day of week.", "properties": { "from": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's beginning inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 200 ] }, "to": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's ending inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 229 ] } } } } }, "mon": { "$id": "/properties/window/properties/mon", "type": "object", "description": "Schedule details for day of the week Monday.", "properties": { "enable": { "type": "boolean", "description": "Will task run this day of the week?", "default": false, "examples": [ false ] }, "time": { "type": "object", "description": "When can task run this day of week.", "properties": { "from": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's beginning inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 200 ] }, "to": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's ending inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 229 ] } } } } }, "tues": { "$id": "/properties/window/properties/tues", "type": "object", "description": "Schedule details for day of the week Tuesday.", "properties": { "enable": { "type": "boolean", "description": "Will task run this day of the week?", "default": false, "examples": [ false ] }, "time": { "type": "object", "description": "When can task run this day of week.", "properties": { "from": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's beginning inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 200 ] }, "to": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's ending inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 229 ] } } } } }, "wed": { "$id": "/properties/window/properties/wed", "type": "object", "description": "Schedule details for day of the week Wednesday.", "properties": { "enable": { "type": "boolean", "description": "Will task run this day of the week?", "default": false, "examples": [ true ] }, "time": { "type": "object", "description": "When can task run this day of week.", "properties": { "from": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's beginning inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 200 ] }, "to": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's ending inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 229 ] } } } } }, "thur": { "$id": "/properties/window/properties/thur", "type": "object", "description": "Schedule details for day of the week Thursday.", "properties": { "enable": { "type": "boolean", "description": "Will task run this day of the week?", "default": false, "examples": [ true ] }, "time": { "type": "object", "description": "When can task run this day of week.", "properties": { "from": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's beginning inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 200 ] }, "to": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's ending inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 229 ] } } } } }, "fri": { "$id": "/properties/window/properties/fri", "type": "object", "description": "Schedule details for day of the week Friday.", "properties": { "enable": { "type": "boolean", "description": "Will task run this day of the week?", "default": false, "examples": [ false ] }, "time": { "type": "object", "description": "When can task run this day of week.", "properties": { "from": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's beginning inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 200 ] }, "to": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's ending inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 229 ] } } } } }, "sat": { "$id": "/properties/window/properties/sat", "type": "object", "description": "Schedule details for day of the week Saturday.", "properties": { "enable": { "type": "boolean", "description": "Will task run this day of the week?", "default": false, "examples": [ false ] }, "time": { "type": "object", "description": "When can task run this day of week.", "properties": { "from": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's beginning inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 200 ] }, "to": { "type": "integer", "description": "Time in 24-hour format (HHMM) and in the Itential server's time zone that identifies the time window's ending inside which the scheduled task is allowed to run.", "default": 0, "pattern": "[0-9]{1,4}", "examples": [ 229 ] } } } } } } } } }
Click SAVE in the task dialog to save the schedule.
Save your changes to the Automation by clicking SAVE in the footer. A confirmation box will appear to confirm the changes were saved.
Delete a Task
To delete a task:
- On the Automation Builder canvas, select the task you want to delete.
- Click the Delete button, or press the "d" key.
- Click SAVE or UPDATE in the title bar to save changes.